package com.hdphone.zljutils.inter;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.MotionEvent;
import android.view.View;

/**
 * @date: 2021/6/2
 * @email： yzandlj@163.com
 * @author： yangzhi
 * @describe:
 */
public interface IActivityUtil {

    /**
     * 获取当前程序包名
     *
     * @return
     */
    String getPackageName();

    /**
     * 获取当前程序版本号
     *
     * @return
     */
    int getVersionCode();

    /**
     * 获取当前程序版本名称
     *
     * @return
     */
    String getVersionName();

    /**
     * 获取Application Meta数据
     *
     * @return
     */
    String getApplicationMetaData(String key);

    /**
     * 获取Activity Meta数据
     *
     * @return
     */
    Object getActivityMetaData(Class<?> clazz, String key);

    /**
     * 当前activity 是不是在顶部
     *
     * @return activityName  Activity的全称（包括包名)
     */
    boolean isTopCurrentActivity(String activityName);

    /**
     * 获取Service Meta数据
     *
     * @return
     */
    Object getServiceMetaData(Class<?> clazz, String key);

    /**
     * 获取Receiver Meta数据
     *
     * @return
     */
    Object getReceiverMetaData(Class<?> clazz, String key);

    /**
     * 隐藏键盘
     *
     * @param activity
     */
    void hideKeyboard(Activity activity);

    /**
     * 获取手机名
     *
     * @param
     * @return
     */
    String getPhoneName();


    String intToIp(int i);

    /**
     * 判断应用是否是前台运行
     *
     * @return
     */
    boolean isForeground();

    /**
     * 判断应用是否是前台运行
     * 注：经测试发现，有时会出现判断失误，故目前使用isForeground。
     *
     * @return
     */
    boolean isForegroundV2();

    /**
     * 安装APK
     *
     * @param filePath 文件路径
     */
    void installApk(String filePath);

    /**
     * 拨号
     *
     * @param phoneNum
     */
    void dial(String phoneNum);

    /**
     * 通过类名启动Activity
     *
     * @param pClass
     */
    void openActivity(Activity activity, Class<?> pClass);

    /**
     * 通过类名启动Activity，并且含有Bundle数据
     *
     * @param pClass
     * @param pBundle
     */
    void openActivity(Activity activity, Class<?> pClass, Bundle pBundle);

    /**
     * Created by lambo on 2018/4/21.
     * 判断服务是否 还在运行
     * serviceName:服务的名称
     */
    boolean isRunning(String serviceName);

    boolean inMainProcess();
}
